package com.wei.czz.framework.admin.service;

import com.wei.czz.framework.admin.entity.RoleMenuEntity;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2021-03-15 10:30:05
 * className: RoleMenuService 角色和菜单关联操作请求服务接口
 * version: 1.0
 * description:
 */
public interface RoleMenuService {

    /**
     * 批量保存角色关联菜单操作
     * @param roleMenuList 角色与菜单对象列表
     */
    void batchSave(List<RoleMenuEntity> roleMenuList);

    /**
     * 获取菜单主键列表操作
     * 根据角色id获取角色关联的所有菜单主键
     * @param roleId 角色id
     */
    List<String> getRoleMenuIdList(Long roleId);

    /**
     * 获取菜单主键列表操作
     * 根据角色id获取角色关联的所有菜单主键
     * @param roleId 角色id
     */
    List<Long> findMenuListByRoleId(Long roleId);

    /**
     * 获取角色主键操作
     * @param menuId 菜单主键
     * @return 角色主键列表
     */
    List<Long> findRoleIdList(Long menuId);

    /**
     * 获取角色与菜单关联数据操作
     * @param roleId       角色主键
     * @param menuId       菜单主键
     * @param deleteStatus 删除状态
     * @return 角色与菜单关联对象列表
     */
    List<RoleMenuEntity> findList(Long roleId, Long menuId, Integer deleteStatus);

    /**
     * 批量修改角色关联菜单操作
     * @param updateList 角色关联菜单对象列表
     */
    void batchUpdate(List<RoleMenuEntity> updateList);

    /**
     * 批量删除角色关联菜单操作
     * @param roleIdList 角色主键列表
     * @param menuIdList 菜单主键列表
     */
    void delete(List<Long> roleIdList, List<Long> menuIdList);

}

